package com.sujinyang.stateless_service.common;

import org.apache.shiro.crypto.hash.SimpleHash;

import java.util.List;
import java.util.Map;

public class Md5Utils {

    //此处应该根据key值和相关内容进行md5加密 加密方式应为key+content 加密次数为1次
    public static String digest(String key, String content) {
        return new SimpleHash("md5",content,key,1).toString();
    }

    public static String digest(String key, Map<String, ?> map) {
        StringBuilder s = new StringBuilder();
        for(Object values : map.values()) {
            if(values instanceof String[]) {
                for(String value : (String[])values) {
                    s.append(value);
                }
            } else if(values instanceof List) {
                for(String value : (List<String>)values) {
                    s.append(value);
                }
            } else {
                s.append(values);
            }
        }
        return digest(key, s.toString());
    }
}
